home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 7 / DOS229B.dsk / RAINBOW DEMO.bas < prev   
BASIC Source File  |  2012-02-16  |  8KB  |  124 lines

  1. 10  HOME : TEXT : PRINT : GOSUB 10000: GOTO 1000
  2. 50  TEXT : HOME : RUN 
  3. 60 P0 = ( PEEK(0) + PEEK(1) *256) *.914:P1 =  PEEK(2):P2 = P0:P3 = P1: RETURN 
  4. 80 Q1 = 0: IF KI = 0  THEN Q1 = 1:SS = 1: & B,90,8
  5. 85  RETURN 
  6. 90  &  DRAW 19 AT 168,172: RETURN 
  7. 95  HCOLOR= 3: HPLOT 165,171 TO 187,171 TO 187,191 TO 165,191 TO 165,171: HCOLOR= 3 *(RF >1): HPLOT 176,172 TO 176,190: HCOLOR= 3 *(RF = 1  OR RF = 4): HPLOT 166,181 TO 186,181: HCOLOR= 3: HPLOT 176,181: RETURN 
  8. 100  POKE 230,32: POKE 28,0: CALL HM,0,164 *PG,192,0,40: POKE  -16300,0: ON   NOT PG GOSUB 195
  9. 101  HCOLOR= 3: POKE 28,127: &  DRAW 5 AT 262,174: &  DRAW 7 AT 226,172: IF CS = 10  THEN 103
  10. 102  ON (CS = 6) +1 GOSUB 90,95
  11. 103  &  DRAW 6 AT 138,174: &  DRAW 20 AT 5,172: IF CS < >6  THEN  &  DRAW 21 AT 88,172
  12. 106  &  DRAW 8 AT 118,174: HPLOT 41,174 TO 70,174 TO 70,191 TO 41,191 TO 41,174 TO 40,174 TO 40,191: HPLOT 71,174 TO 71,191
  13. 109  RETURN 
  14. 110  POKE 28,0: &  DRAW 26 AT 18,176
  15. 115 PA = (PA +1) *(PA <11): POKE 28,127: &  DRAW 9 +PA +9 *(PA >9) AT 18,176: POKE PN,PA -9 *(PA >9): CALL DP: RETURN 
  16. 120  POKE PN,PT: CALL DP +3: POKE CN, PEEK(CN) +CO: CALL DP +6: CALL MV: RETURN 
  17. 125 WF = 4: GOTO 900
  18. 126  CALL HM,1,0,189,11,20,0,11: CALL UN,2,18: POKE KS,10:ZZ = 1:K = 52:K1 = 17:K2 = 102:X = 190:SS = 0: GOSUB 260:FF = 2 ^S1:F1 = FF: POKE 230,64: CALL HM,1,0,189,11,20: POKE 230,32:BR = BP: RETURN 
  19. 130 WF = 5: GOTO 900
  20. 131  CALL HM,1,0,182,11,20,0,11: CALL UN,2,17: POKE KS,30
  21. 132  CALL BS:BR =  PEEK(6): POKE 230,64: CALL HM,1,0,182,11,20,0,11: POKE 230,32:FF = 32 *(BR = 49) +F1 *(BR < >49)
  22. 133  IF BR < >49  THEN BP = BR
  23. 134  RETURN 
  24. 140  POP :PG = 0: IF CS = 6  OR CS = 10  THEN PG = 1
  25. 142 WF = 7: GOTO 900
  26. 150  IF CS = 10  THEN  RETURN 
  27. 151  IF CS = 6  THEN 156
  28. 152  POKE 28,0: &  DRAW 26 AT 171,174
  29. 155 PI = (PI +1) *(PI <1): POKE 28,127: &  DRAW 10 +PI AT 171,174: GOSUB 290: RETURN 
  30. 156 RF = RF/2: IF RF <1  THEN RF = 4
  31. 157  GOSUB 95: RETURN 
  32. 190  ON (CS = 6  OR CS = 10) +1 GOSUB 290,195: RETURN 
  33. 195  POKE 28,127: CALL HM,0,0,164,3,37: RETURN 
  34. 200  POKE KS,1:I = (CS = 6) +2 *(CS = 10): &  READ 11000 +I *10 +( PEEK(OP) >0): READ K1,K: FOR J = 0 TO K: READ X%(J): NEXT 
  35. 201 MD = 2 *I +( PEEK(OP) >0)
  36. 202 SS = 0:K = 15:KK = 0:X1 = 0:Y1 = 0:P1 =  INT(P1/K) *K:ZZ = 1: GOTO 206
  37. 205  GOSUB 80: IF Q1  THEN 250
  38. 206  GOSUB 207: GOTO 220
  39. 207  CALL WK:KI =  PEEK(KX): ON KI = 255 GOTO 219: POKE KP,255: ON KI = 1 GOSUB 13000: IF KI = 10  THEN  CALL ST
  40. 208 P0 = P0 +K1 *(KI = 4  OR KI = 8) -K1 *(KI = 3  OR KI = 7):P0 = P0 *(P0 >0):P0 = P0 *(P0 <255) +255 *(P0 > = 255)
  41. 209 P1 = P1 +K *(KI = 5  OR KI = 9) -K *(KI = 2  OR KI = 6):P1 = P1 *(P1 >0): ON K1 <30 GOTO 210: IF P1 >165  THEN P1 = 165
  42. 210  IF K1 = 15  OR 17  THEN  IF P1 >242  THEN P1 = 242
  43. 219 ZZ = 0: RETURN 
  44. 220 I = (P0 >20):J = (P1 <160): IF I  AND J  THEN 250
  45. 222  IF   NOT J  THEN Y = 165:S1 =  INT(P0/K1):X = X%(S1):S1 = S1 +11: GOTO 230
  46. 225 X = 14:S1 =  INT(P1/K):Y = S1 *15 +3
  47. 230  IF X1 = X  AND Y1 = Y  THEN 205
  48. 240  IF KK  THEN  POKE 28,0: &  DRAW AR AT X1,Y1
  49. 245 X1 = X:Y1 = Y:KK = 1:AR = 24 +(S1 >10): POKE 28,127: &  DRAW AR AT X1,Y1: & B,40 +15 *(AR = 24),8: GOTO 205
  50. 250  IF KK  THEN  POKE 28,0: &  DRAW AR AT X1,Y1
  51. 255  RETURN 
  52. 260 QQ = SS:KK = 0:Y1 = 0:AR = 24:ZZ = 1: GOTO 267
  53. 265  GOSUB 80: IF Q1  THEN 280
  54. 267  GOSUB 207: IF P0 >14  AND SS  THEN SS = 0: GOTO 280
  55. 268 S1 =  INT(P1/K):Y = S1 *K1 +K2: IF Y = Y1  THEN 265
  56. 270  IF KK  THEN  POKE 28,255 *(  NOT SS): &  DRAW AR AT X,Y1
  57. 275 Y1 = Y:KK = 1: POKE 28,128 -SS: &  DRAW AR AT X,Y1: & B,40,8: GOTO 265
  58. 280  IF KK  THEN  POKE 28,255 *(  NOT QQ): &  DRAW AR AT X,Y1
  59. 282  RETURN 
  60. 290 WF = 6: GOTO 900
  61. 295  POKE PN -6,3: POKE PN -5,37: POKE PN -3,164: CALL UN,2,15 +PI: RETURN 
  62. 300  CALL HM,1,0,164,3,37,0,3:K = 24:K1 = 15:K2 = 3:X = 14:PA = 9: GOSUB 110: GOSUB 195: CALL DG: POKE 28,0: CALL HM,0,164,192,11,29
  63. 301  CALL HM,0,142,154,18,6: HCOLOR= 3: HPLOT 126,142 TO 126,153: HPLOT 127,142 TO 127,153: HCOLOR= 0: HPLOT 167,142 TO 167,153: HPLOT 168,142 TO 168,153: POKE 28,127: &  DRAW 30 AT 135,145
  64. 305  FOR I = 1 TO 3000: NEXT 
  65. 310  GOSUB 315
  66. 312  RETURN 
  67. 315  POKE 230,64: CALL HM,1,0,164,3,37,0,3: POKE 230,32: GOSUB 101: IF CS = 10  OR CS = 6  THEN 325
  68. 320  POKE 28,127: &  DRAW 10 +PI AT 171,174
  69. 325  RETURN 
  70. 400  GOSUB 315: POKE OP,0: POKE 28,0: &  DRAW 27 AT 195,172: RETURN 
  71. 500  RETURN 
  72. 700  CALL  -3288: IF  PEEK(222) >13  THEN  RUN 
  73. 800  GOSUB 50
  74. 900  REM  ONERR  GOTO 700
  75. 910  PRINT D$"BLOAD B.HIRES TABLES"
  76. 920  POKE  -16304,0: POKE  -16300,0: ON WF GOTO 502,505,312,126,131,295,1000
  77. 1000  POKE KS,30: POKE 230,64: POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,19: ON   NOT  PEEK(255) GOTO 12000:WF = 0: POKE  -16299,0: CALL MS:CS =  PEEK(6)
  78. 1001  IF TS = 1  THEN TS = 2: POKE 230,32: POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,9 +TS: ON   NOT  PEEK(255) GOTO 12000: POKE  -16300,0: FOR I = 1 TO 11000: NEXT 
  79. 1003 PI =  -1:RF = 4 *(CS = 6):FF = 32 -16 *(CS = 6  OR CS = 10):BR = 49 -45 *(CS = 6  OR CS = 10):F1 = 16
  80. 1004 PA =  -1:CO = 2 -(CS = 6  OR CS = 10)
  81. 1005 P0 = 82:P1 = 165: IF CS < >6  AND CS < >10  THEN PG = 0
  82. 1006  GOSUB 100: GOSUB 110:PT = PA: GOSUB 120: & B,10 +20 * RND(1),6: & B,12 +8 * RND(1),6: & B,8 +18 * RND(1),4
  83. 1007  IF CS = 6  OR CS = 10  THEN 1010
  84. 1008  GOSUB 150
  85. 1010  POKE KS,5: POKE FL,FF: POKE BN,BR: POKE RE,RF: POKE 2,P1:P0 = P0 *1.08: POKE 1,P0 >255: POKE 0,P0 -256 * PEEK(1): CALL DR: GOSUB 60
  86. 1020  GOSUB 200: IF   NOT SS  THEN 1010
  87. 1030  IF S1 <11  THEN PT = PA:CO = S1: GOSUB 120: GOTO 1020
  88. 1035  IF S1 >11  AND  PEEK(OP) >0  AND S1 < >16 +(MD = 1)  THEN  POKE OP,0: POKE 28,0: &  DRAW 27 AT 195,172
  89. 1040  POKE DF,0: ON MD +1 GOSUB 1050,1060,1070,1080,1090,1100: GOTO 1020
  90. 1050  ON S1 -10 GOSUB 110,300,125,130,140,150,190,500: RETURN 
  91. 1060  ON S1 -10 GOSUB 110,300,125,130,140,150,400,190,500: RETURN 
  92. 1070  ON S1 -10 GOSUB 110,300,130,140,150,190,500: RETURN 
  93. 1080  ON S1 -10 GOSUB 110,300,130,140,150,400,190,500: RETURN 
  94. 1090  ON S1 -10 GOSUB 110,300,125,130,140,190,500: RETURN 
  95. 1100  ON S1 -10 GOSUB 110,300,125,130,140,400,190,500: RETURN 
  96. 10000  PRINT  CHR$(4)"MAXFILES1": HIMEM: 7807
  97. 10001  ONERR  GOTO 12000
  98. 10002 GS =  PEEK(674)
  99. 10003 D$ =  CHR$(4):B0 =  -16287:B1 =  -16286: POKE 230,32: CALL 62450: POKE 230,64: CALL 62450: POKE  -16302,0: POKE  -16297,0
  100. 10005 HM = 24704:DP = HM +3:MV = HM +12:MU = HM +15:BS = HM +18:MS = HM +21:UN = HM +24:DG = HM +27:EC = HM +30:PN = HM +47:CN = PN -2:DR = 24737:FL = DR +23:BN = DR +32:RE = DR +24
  101. 10008 WK = DR +3:KX = 24772:OP = KX +2: POKE OP,0:KP = OP +2:DF = KP +1:ST = DF +18: POKE KP,255:UF = 12:SW = ST +6:PF = ST +9:BP = 4:EX = 24896:EY = EX +3
  102. 10010  PRINT D$"BLOADB.RAINBOW1": PRINT D$"BLOADB.HIRES TABLES": POKE 230,32: POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,21: ON   NOT  PEEK(255) GOTO 12000
  103. 10016  POKE  -16304,0: POKE  -16300,0: HCOLOR= 3: PRINT D$"BLOADB.SOUND & READ": PRINT D$"BLOADB.RAINBOW2": PRINT D$"BLOADCRAYONS"
  104. 10017 KS = 24906:J =  PEEK(PF -2) + PEEK(PF -1) *256: PRINT D$"BLOADKEYS,A";J
  105. 10018  IF GS = 119  THEN  CALL ST
  106. 10020  POKE 230,64: POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,20: ON   NOT  PEEK(255) GOTO 12000
  107. 10025  POKE  -16299,0: FOR I = 1 TO 3000: NEXT 
  108. 10026 TS = 1: POKE 230,32: POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,9 +TS: ON   NOT  PEEK(255) GOTO 12000: POKE  -16300,0
  109. 10027  FOR I = 1 TO 11000: NEXT 
  110. 10030  POKE DR +33,0: POKE DR +34,153: POKE 1013,76: POKE 1014,0: POKE 1015,3: RETURN 
  111. 11000  DATA  36,7,15,55,94,117,143,172,231,267
  112. 11001  DATA  31,8,15,55,94,117,143,172,199,231,267
  113. 11010  DATA  42,6,15,55,117,143,175,231,267
  114. 11011  DATA  36,7,15,55,117,143,175,199,231,267
  115. 11020  DATA  42,6,15,55,94,117,143,231,267
  116. 11021  DATA  36,7,15,55,94,117,143,199,231,267
  117. 12000  POKE 674,GS: RUN 
  118. 13000 TS = TS +1: POKE 230,64: POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,9 +TS: ON   NOT  PEEK(255) GOTO 12000: POKE  -16299,0
  119. 13010  POKE 230,32
  120. 13020  IF TS <5  THEN  FOR I = 1 TO 11000: NEXT : POKE  -16300,0: RETURN 
  121. 13030  POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,20: ON   NOT  PEEK(255) GOTO 12000
  122. 13040  FOR I = 1 TO 11000: NEXT : POKE  -16300,0
  123. 13050  FOR I = 1 TO 5000: NEXT 
  124. 13060  POKE 672,7: POKE 673,7: POKE 674,GS: PRINT : PRINT D$"RUNHELLO"